/*
 * @Descripttion: 
 * @version: 
 * @Author: turingchang
 * @Date: 2020-09-12 09:16:55
 * @LastEditors: turingchang
 * @LastEditTime: 2020-09-12 15:54:54
 */
export function timeFix() {
  const time = new Date()
  const hour = time.getHours()
  return hour < 9 ? '早上好' : hour <= 11 ? '上午好' : hour <= 13 ? '中午好' : hour < 20 ? '下午好' : '晚上好'
}

export function welcome() {
  // const arr = ['休息一会儿吧', '准备吃什么呢?', '要不要打一把 DOTA', '我猜你可能累了']
  const arr = [
    '我猜你可能累了',
    '如果累了就休息一会儿吧',
    '记得对自己好一点哦！',
    '要不要来一把紧张又刺激的王者荣耀？',
    '上号，跳P城',
    '我在G港等你',
    '我捡到98k了，你有没有8倍镜',
    '你今天一定会很充实吧',
    '我有一手简单的歌，要不要一起听听',
    '我有故事，你有酒吗',
    '太阳当空照，花儿对我笑，小鸟说，早早早，你有病啊起得这么早',
    '面朝大海，春暖花开',
    '海边浪花起，等风也等你',
    '昨天喝冰阔落的那个女孩今天喝起了红糖水',
    '明天想和对象去看电影，有没有好的对象推荐一下',
    '好看的皮囊千篇一律，有趣的肚子弹来弹去',
    '日有所吃，夜有所胖',
    '你最喜欢的颜色是不是酸辣粉',
    '如果你肯花时间了解我，你会发现，你浪费了一点时间',
    '无论发生什么事，先静默2分钟，处理好心情，再处理事情',
    // '老妇撩发少年狂，治肾亏，不含糖',
    '有朋自远方来，虽远必诛',
    '欲说还休，却道天凉好个秋',
    '欲买桂花同载酒，终不似，少年游',
    '唧唧复唧唧，木兰开飞机，开什么飞机，波音747',
    '借问酒家何处有，牧童倒拔垂杨柳',
    '唧唧复唧唧，木兰买手机，oppo r17，拍照更清晰',
    '那是我日夜思念深深爱着的人啊，到底我该如何表达，她会接受我吗',
    '你站在此地不要走动，我去给你买几个橘子',
    '努力成为一个值得被爱的人，加油！',
    '梦想总是遥不可及，是不是应该放弃，花开花落又是一季，春天啊你在哪里',
    '你们的对象是国家发的吗，我也想领一个'
  ]
  const index = Math.floor(Math.random() * arr.length)
  return arr[index]
}

/**
 * 触发 window.resize
 */
export function triggerWindowResizeEvent() {
  const event = document.createEvent('HTMLEvents')
  event.initEvent('resize', true, true)
  event.eventType = 'message'
  window.dispatchEvent(event)
}

export function handleScrollHeader(callback) {
  let timer = 0

  let beforeScrollTop = window.pageYOffset
  callback = callback || function () {}
  window.addEventListener(
    'scroll',
    event => {
      clearTimeout(timer)
      timer = setTimeout(() => {
        let direction = 'up'
        const afterScrollTop = window.pageYOffset
        const delta = afterScrollTop - beforeScrollTop
        if (delta === 0) {
          return false
        }
        direction = delta > 0 ? 'down' : 'up'
        callback(direction)
        beforeScrollTop = afterScrollTop
      }, 50)
    },
    false
  )
}

export function isIE() {
  const bw = window.navigator.userAgent
  const compare = (s) => bw.indexOf(s) >= 0
  const ie11 = (() => 'ActiveXObject' in window)()
  return compare('MSIE') || ie11
}

/**
 * Remove loading animate
 * @param id parent element id or class
 * @param timeout
 */
export function removeLoadingAnimate(id = '', timeout = 1500) {
  if (id === '') {
    return
  }
  setTimeout(() => {
    document.body.removeChild(document.getElementById(id))
  }, timeout)
}

export function isNull(obj) {
  if (Object.prototype.toString.call(obj) === '[object Boolean]') {
    return false;
  } else if (Object.prototype.toString.call(obj) === '[object Array]') {
    try {
      if (obj.length == 0) { // "",[]
        return true;
      } else {
        return false;
      }
    } catch (error) {
      return true;
    }
  } else if (Object.prototype.toString.call(obj) === '[object Object]') {
    try {
      if (Object.keys(obj).length <= 0) {
        return true;
      } else {
        return false;
      }
    } catch (error) {
      return true;
    }
  } else if (Object.prototype.toString.call(obj) === '[object String]') {
    try {
      if (obj.trim() == '' || obj.trim().toLocaleLowerCase() == 'null' || obj.trim().toLocaleLowerCase() == 'undefined') {
        return true;
      } else {
        return false;
      }
    } catch (error) {
      return true;
    }
  } else if (Object.prototype.toString.call(obj) === '[object Null]') {
    return true;
  } else if (Object.prototype.toString.call(obj) === '[object Undefined]') {
    return true;
  } else if (Object.prototype.toString.call(obj) === '[object Number]') {
    if (obj.toString() == 'NaN') {
      return true;
    } else {
      return false;
    }
  } else if (Object.prototype.toString.call(obj) === '[object Error]') {
    if (obj.toString().trim().length <= 0) {
      return true;
    } else {
      return false;
    }
  } else {
    try {
      if (obj == null || obj == undefined) {
        return true;
      }
    } catch (error) {
      return true;
    }

    try {
      if (obj === undefined) {
        return true;
      }
    } catch (error) {
      return true;
    }
    try {
      if (obj.trim() == '') {
        return true;
      }
    } catch (error) {
      return true;
    }

    try {
      // "",null,undefined,NaN
      if (!obj) {
        return true;
      }
    } catch (error) {
      return true;
    }
  }
  return false;
}